2009-07-30 20:31:17 +0000 2009-07-30 20:31:17 +0000
126
126

Как я могу массово переименовывать файлы?

У меня есть куча файлов с именем шаблона 99 - DescriptiveName.txt, и я хотел бы удалить номер с лицевой стороны, так что у меня есть только DescriptiveName.txt.

Как я могу это сделать? Могу ли я сделать это из командной строки или есть утилита, которая может это сделать?

Ответы (22)

94
94
94
2009-07-30 20:58:54 +0000

Я знаю, что в вашем заголовке вы говорите “в дозе”, но у меня сложилось впечатление, что вы просто ищете способ сделать это, и я задаюсь вопросом, является ли это лучшим способом.

Абсолютно лучший инструмент, который я нашел для этого, это Bulk Rename Utility .

Это не инструмент командной строки, но у них есть командная строка версии , если вы действительно хотите использовать его таким образом.

Я использовал GUI версию много, и это очень мощный, очень быстрый и очень простой в использовании.

О, и это БЕСПЛАТНО для личного использования.

60
60
60
2011-07-13 17:30:08 +0000

Небольшой скрипт PowerShell:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

В сочетании с более сложными регулярными выражениями, это может стать чем-то вроде:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

, что превращает вещи типа ‘01 - Beginning.mp3’ в ‘Beginning - 01.mp3’.

Используйте параметр -WhatIf на Rename-Item для проверки переименований перед тем, как их выдать.

24
24
24
2009-08-07 17:21:40 +0000

AntRenamer позволяет довольно легко определить шаблон переименования; их уже подготовлено много (и это дает предварительный просмотр действий):

Бесплатно для личного и коммерческого использования.

24
24
24
2009-08-07 17:53:34 +0000

Если вы действительно хотите использовать командную строку windows (если вы не хотите что-то загружать), вы можете сделать это следующим образом:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

Первая строка выводит список файлов в файл под названием fileList.txt. Вторая строка разделяет каждое из имен в списке на 3 части, #, “-” и остальное имя. Для каждого из них выполняется команда переименования.

19
19
19
2009-07-30 21:24:47 +0000

Старая школа:

Вы можете сделать DIR и перенаправить вывод в файл, как в DIR *.TXT >TEMP.BAT

Затем используйте редактор, чтобы извлечь то, что вам не нужно, и изменить части, которые вам нужны. Добавьте “@echo off” в качестве верхней строки, сохраните и запустите его.

17
17
17
2014-03-18 01:33:41 +0000

Еще один вариант: * Massive File Renamer **

Он позволяет легко переименовывать несколько файлов и файловых расширений. Это очень быстро и просто!

Для продвинутых пользователей и разработчиков, можно использовать регулярные выражения.

См. это в действии:

13
13
13
2009-08-23 08:56:29 +0000

Я использую инструмент Total Commander с несколькими именами (ctrl+M) для таких вещей. Их полезный инструмент, один из слишком многих, прост в использовании, а также может использовать регулярные выражения и шаблоны при необходимости. Очевидно, что это дает возможность предварительного просмотра перед внесением каких-либо изменений.

Это третий или четвертый вопрос, на который я ответил, рекомендуя Total Commander… Я должен получить от них комиссионные ;-)

11
11
11
2009-07-30 22:11:57 +0000

Инструмент, которым я был доволен, это ReNamer . Он также поддерживает сохранение правил переименования, что было полезно для меня, так как я много раз делаю одно и то же переименование.

Ниже приведен пример того, как удалять текст перед первым тире, но есть много других правил, которые вы можете определить.

5
5
5
2009-11-27 23:02:30 +0000

Для этого я использовал Free Commander Portable (бесплатное программное обеспечение):

  1. Выберите или перейдите к файлам или каталогам для переименования
  2. Нажмите
4
4
4
2013-01-03 10:47:45 +0000

Для продвинутых пользователей и разработчиков я бы предложил RegexRenamer .

Pro’s:

  • Очень простой пользовательский интерфейс;
  • Регулярные выражения, знакомые разработчикам;
  • GPLv2;

Con’s:

  • Это не командная строка! :)
3
3
3
2009-08-23 06:16:40 +0000

Вот решение command-line — Java-программа, которую я написал специально для того, чтобы было удобно работать с “шаблонами” в именах файлов. Она свободна и с открытым исходным кодом, так что не стесняйтесь ее модифицировать:

RenameWand http://renamewand.sourceforge. net/

Соответствующие примеры использования:

Опустите все до "-" в имени файла:

java -jar RenameWand.jar "<a> - <b>" "<b>"

Подготовьте 3-значное число к имени файла, сортируя по последнему измененному времени:

java -jar RenameWand.jar "<a>" "<3|#FT> <a>"

Переместить части имени файла и изменить регистр:

&00001.

3
3
3
2009-08-23 09:31:32 +0000

Я обнаружил Ренфорик около месяца назад. Прекрасно. И это free.

Никакого сложного интерфейса, и я быстро смог переименовать именно то, что хотел. Способный к регулярному выражению. С тех пор больше ничем не пользуюсь.

3
3
3
2009-07-30 20:37:17 +0000

Самым простым способом будет использование Переименовать Мастера .

2
2
2
2014-07-04 05:53:01 +0000
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER\_PATH=. pushd %FOLDER\_PATH% for %%f in (\*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd

сохранить это в пакетном файле и запустить

2
2
2
2013-03-30 20:17:45 +0000

Смешное название и инструмент командной строки очень мощный, очень быстрый и чрезвычайно простой в использовании. “Найти и заменить текст” ФАРТ http://fart-it.sourceforge.net/ РАБОТЫ GREAT! может переименовывать слова и в txt-файлах.

USAGE

Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]

Options:
 -h --help Show this help message (ignores other options)
 -q --quiet Suppress output to stdio / stderr
 -V --verbose Show more information
 -r --recursive Process sub-folders recursively
 -c --count Only show filenames, match counts and totals
 -i --ignore-case Case insensitive text comparison
 -v --invert Print lines NOT containing the find string
 -n --line-number Print line number before each line (1-based)
 -w --word Match whole word (uses C syntax, like grep)
 -f --filename Find (and replace) filename instead of contents
 -B --binary Also search (and replace) in binary files (CAUTION)
 -C --c-style Allow C-style extended characters (\xFF&001\t\n\r\ etc.)
    --cvs Skip cvs dirs; execute "cvs edit" before changing files
 -a --adapt Adapt the case of replace_string to found string
 -b --backup Make a backup of each changed file
 -p --preview Do not change the files but print the changes
2
2
2
2013-11-04 09:58:24 +0000

Несколько сценариев переименования является открытым исходным кодом альтернативой Total Commanders Multi Rename инструмент, который можно управлять с помощью сценария. Он может использовать плагины TC для получения информации о метаданных. https://code.google.com/p/multi-rename-script/

2
2
2
2011-08-14 16:27:25 +0000

Мне нравится Cylog’s WildRename . Он мощный, но простой в использовании, и имеет множество функций:

  1. быстрая
  2. манипуляция со строками
  3. счетчики
  4. wildcards
  5. регулярные выражения
  6. подмена
  7. преобразование кейса
  8. лог
  9. симуляция (показать результаты без фактического их применения)

.

2
2
2
2012-09-10 15:11:39 +0000

Как и в случае с @zdan выше, я сделал это с помощью командной строки (используя “cmd.exe” в Windows). Это заняло некоторое время для моего конкретного случая, но небольшое исследование решило проблему.

Как и zdan, я выводил список в TXT-файл, затем использовал tokens и delims для переименования файлов соответственно. В моем случае я начал со списка файлов с таким именем:

name-01-02-2012.csv

Я хотел, чтобы часть даты файла была в порядке y/m/d, с “name” частью в конце, чтобы он читался так:

2012-01-02-name.csv

Чтобы сделать это en-masse, я использовал следующий код. Обратите внимание, что при этом учитываются ВСЕ части имени файла, включая расширение “.csv”. Это в первый раз меня обмануло.

dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m

tokens - “части” имени файла, delims - разделители. Обратите внимание, что в моем случае, у меня было 2 разделителя (тире и точке).

лично мне плевать на приложение “Bulk Rename”. Как уже упоминали другие, GUI ужасен и не очень интуитивно понятен. С небольшим исследованием и простым кодированием, эти вещи могут быть сделаны много mroe эффективно и быстро.

1
1
1
2014-12-01 02:56:58 +0000

Я разработал гибридная утилита командной строки JScript/batch под названием JREN.BAT , которая может переименовывать файлы или папки, выполняя поиск по регулярным выражениям и заменять их по именам. Это чистый скрипт, который будет работать на любой Windows-машине от XP forward. Полная документация встроена в скрипт.

Если предположить, что JREN.BAT находится в текущем каталоге, или, что еще лучше, где-то внутри вашего пути, то ваша задача переименования становится тривиальной.

или

jren "^\d+[-]+(.+)\.txt$" "$1" /i

Есть много опций, включая опцию /S, которая рекурсивно выполняет переименование в подкаталогах.

1
1
1
2013-03-02 20:08:23 +0000

Я использую “Черную доску” для администрирования курсов в университете. Когда я загружаю задание в массовом порядке (в Blackboard, нажмите на колонку “Загрузка файла задания”, затем “Загрузка файла задания”), Blackboard добавляет к имени файла кучу дополнительных вещей - часто делая имя файла слишком длинным, чтобы быть действительным в Windows. Вот как они выглядят:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

И вот что я хотел

studentname.docx

Поэтому я использовал подход, который посоветовал @zdan и @gtr1971, открыв командное окно в папке с файлами внутри (CMD.EXE). Затем выполните эту команду, чтобы поместить все имена файлов в документ.

dir /b >filelist.txt

Редактируйте документ, удаляйте имена папок и т.д.

Используйте эту команду, чтобы заменить файлы, добавленные в Blackboard, только именем пользователя и расширением файла.

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

Надеюсь, это поможет и кому-то другому.

1
1
1
2013-07-10 23:07:13 +0000

Вот еще одна простая программа под названием File Attribute Changer, которую можно использовать для переименования файлов. Это портативная программа, поэтому вы можете переносить ее на USB-накопитель. http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

0
0
0
2015-03-18 00:47:18 +0000

Если тебе нужна серьезная власть и ты готов раскошелиться на деньги… PowerGrep - один из самых мощных и универсальных инструментов на рынке… Вы можете переименовать почти все, что угодно с помощью PowerGrep… даже бинарный поиск и замену… он создан Гуру RegEx, Jan Goyvaerts .

.

Похожие вопросы

3
19
10
28
10